package Stream流;

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Predicate;

public class 流水线的中间操作 {
    public static void main(String[] args) {
        /*
        filter  过滤
        limit   获取前几个元素
        skip    跳过前几个元素
         */

        ArrayList<String> list =new ArrayList<>();
        Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","王二麻子","谢广坤");

        //1.过滤filter,把张开头的留下,其余不要
//        list.stream().filter(new Predicate<String>() {
//            @Override
//            public boolean test(String s) {
//                //true:表示当前数据留下
//                //false:表示当前数据舍弃
//                //s.startsWith("张");开头是张返回true
//                return s.startsWith("张");
//            }
//        });
//        list.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));


        //2.limit 获取前几个元素前几个元素
        list.stream().limit(1).
                filter(s -> s.startsWith("张")).
                forEach(s -> System.out.println(s));//只有一个 张无忌
        //3.skip 跳过前几个元素
        list.stream().skip(8).forEach(s -> System.out.println(s));//总共9个元素,只有最后一个:谢广坤


    }
}
